/**
 * wms模块的接口
 */

import type { Material } from './mes_interface';

// 仓库
export interface Warehouse {
  id?: string; // 主键
  name?: string;
  enabled?: boolean; // 是否可用
}
// 库区
export interface WarehouseArea {
  warehouse?: Warehouse;
  warehouseId?: string;
  id?: string; // 主键
  name?: string;
  enabled?: boolean; // 是否可用
}
// 库位
export interface WarehouseSeat {
  warehouse?: Warehouse;
  warehouseArea?: WarehouseArea;
  warehouseId?: string;
  warehouseAreaId?: string;
  id?: string; // 主键
  name?: string;
  enabled?: boolean; // 是否可用
}
//物料批次
export interface MaterialBatch {
  id?: string; // 主键
  material?: Material;
  batchNumber?: string;
  productionDate?: string;
  manuFacturer?: string;
  purchaseQuantity?: number;
  totalInventory?: number;
  storedQuantity?: number;
  pendingQuantity?: number;
  isLock?: boolean; // 是否可用
  //扩展属性，用于配合
  materialId?: string;
  materialName?: string;
}
//物料库存
export interface WmsMaterialInventory {
  id?: string; // 主键
  material?: Material;
  purchaseQuantity?: number;
  totalInventory?: number;
  isLock?: boolean; // 是否可用
  inventoryLimit?: number;
  inventoryLower?: number;
  seatNumber?: number;
  materialInventoryDetails?: Array<WmsMaterialInventoryDetail>;
  //扩展属性，用于配合
  materialId?: string;
  materialName?: string;
}
//物料库存详情
export interface WmsMaterialInventoryDetail {
  id?: string; // 主键
  materialInventory?: WmsMaterialInventory;
  materialBatch?: MaterialBatch;
  warehouseSeat?: WarehouseSeat;
  inventory?: number;
  isLock?: boolean; // 是否可用
  lockQuantity?: number;
  remark?: string;
  //扩展属性，用于配合
  manuFacturer?: string; //生产厂家，对应物料批次
  materialName?: string; //物料名称
  batchNumber?: string; //批号，对应物料批次
  productionDate?: string; //生产日期，对应物料批次
  storedQuantity?: number; //已入库数量，对应物料批次
  inventoryLimit?: number; //库存上限，对应物料库存
  inventoryLower?: number; //库存下限，对应物料库存
  totalInventory?: number; //当前物料总库存，对应物料库存
  materialBatchId?: string; //物料批次Id
  warehouseSeatId?: string; //要选择的库位
  // materialId?: string;
  // materialName?: string;
}
//物料移库
export interface WmsMaterialInventoryDetailRelocation {
  materialInventoryDetailOfSource?: WmsMaterialInventoryDetail; //需要移库的源库位
  materialInventoryDetailOfTarget?: WmsMaterialInventoryDetail; //需要移库的目标库位
  //扩展属性，用于配合
  //扩展属性1：物料批次属性
  manuFacturer?: string; //生产厂家，对应物料批次
  materialName?: string; //物料名称
  batchNumber?: string; //批号，对应物料批次
  productionDate?: string; //生产日期，对应物料批次
  storedQuantity?: number; //已入库数量，对应物料批次
  //扩展属性2：物料库位属性
  inventoryLimit?: number; //库存上限，对应物料库存
  inventoryLower?: number; //库存下限，对应物料库存
  totalInventory?: number; //当前物料总库存，对应物料库存
  //扩展属性3：源库位信息
  inventorySource?: number;
  remarkSource?: string;
  isLockSource?: boolean; // 是否可用
  lockQuantitySource?: number;
  //扩展属性4：目标库位信息
  inventoryTarget?: number; //目标库位库存
  remarkTarget?: string; //目标库位备注
  //其他属性
  materialBatchId?: string; //物料批次Id
  warehouseSeatTargetId?: string; //要选择的库位
  // materialId?: string;
  // materialName?: string;
}
